<!DOCTYPE HTML>
<html lang="">
<head>
	<meta charset="UTF-8">
	<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
	<title>Animations · GitBook</title>
	<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
	<meta name="description" content="">
	<meta name="generator" content="GitBook 3.2.2">
	<meta name="author" content="chartjs">


	<link rel="stylesheet" href="../gitbook/style.css">


	<link rel="stylesheet" href="../gitbook/gitbook-plugin-search-plus/search.css">


	<link rel="stylesheet" href="../gitbook/gitbook-plugin-highlight/website.css">


	<link rel="stylesheet" href="../gitbook/gitbook-plugin-fontsettings/website.css">


	<link rel="stylesheet" href="../style.css">


	<meta name="HandheldFriendly" content="true"/>
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<meta name="apple-mobile-web-app-status-bar-style" content="black">
	<link rel="apple-touch-icon-precomposed" sizes="152x152"
	      href="../gitbook/images/apple-touch-icon-precomposed-152.png">
	<link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">


	<link rel="next" href="layout.html"/>


	<link rel="prev" href="./"/>


	<link rel="stylesheet" href="../gitbook/gitbook-plugin-chartjs/style.css">
	<script src="../gitbook/gitbook-plugin-chartjs/Chart.bundle.js"></script>
	<script src="../gitbook/gitbook-plugin-chartjs/chartjs-plugin-deferred.js"></script>


</head>
<body>

	<div class="book">
		<div class="book-summary">


			<div id="book-search-input" role="search">
				<input type="text" placeholder="Type to search"/>
			</div>


			<nav role="navigation">


				<ul class="summary">


					<li class="chapter " data-level="1.1" data-path="../">

						<a href="../">


							Chart.js

						</a>


					</li>

					<li class="chapter " data-level="1.2" data-path="../getting-started/">

						<a href="../getting-started/">


							Getting Started

						</a>


						<ul class="articles">


							<li class="chapter " data-level="1.2.1" data-path="../getting-started/installation.html">

								<a href="../getting-started/installation.html">


									Installation

								</a>


							</li>

							<li class="chapter " data-level="1.2.2" data-path="../getting-started/integration.html">

								<a href="../getting-started/integration.html">


									Integration

								</a>


							</li>

							<li class="chapter " data-level="1.2.3" data-path="../getting-started/usage.html">

								<a href="../getting-started/usage.html">


									Usage

								</a>


							</li>


						</ul>

					</li>

					<li class="chapter " data-level="1.3" data-path="../general/">

						<a href="../general/">


							General

						</a>


						<ul class="articles">


							<li class="chapter " data-level="1.3.1" data-path="../general/responsive.html">

								<a href="../general/responsive.html">


									Responsive

								</a>


							</li>

							<li class="chapter " data-level="1.3.2" data-path="../general/interactions/">

								<a href="../general/interactions/">


									Interactions

								</a>


								<ul class="articles">


									<li class="chapter " data-level="1.3.2.1"
									    data-path="../general/interactions/events.html">

										<a href="../general/interactions/events.html">


											Events

										</a>


									</li>

									<li class="chapter " data-level="1.3.2.2"
									    data-path="../general/interactions/modes.html">

										<a href="../general/interactions/modes.html">


											Modes

										</a>


									</li>


								</ul>

							</li>

							<li class="chapter " data-level="1.3.3" data-path="../general/options.html">

								<a href="../general/options.html">


									Options

								</a>


							</li>

							<li class="chapter " data-level="1.3.4" data-path="../general/colors.html">

								<a href="../general/colors.html">


									Colors

								</a>


							</li>

							<li class="chapter " data-level="1.3.5" data-path="../general/fonts.html">

								<a href="../general/fonts.html">


									Fonts

								</a>


							</li>


						</ul>

					</li>

					<li class="chapter " data-level="1.4" data-path="./">

						<a href="./">


							Configuration

						</a>


						<ul class="articles">


							<li class="chapter active" data-level="1.4.1" data-path="animations.html">

								<a href="animations.html">


									Animations

								</a>


							</li>

							<li class="chapter " data-level="1.4.2" data-path="layout.html">

								<a href="layout.html">


									Layout

								</a>


							</li>

							<li class="chapter " data-level="1.4.3" data-path="legend.html">

								<a href="legend.html">


									Legend

								</a>


							</li>

							<li class="chapter " data-level="1.4.4" data-path="title.html">

								<a href="title.html">


									Title

								</a>


							</li>

							<li class="chapter " data-level="1.4.5" data-path="tooltip.html">

								<a href="tooltip.html">


									Tooltip

								</a>


							</li>

							<li class="chapter " data-level="1.4.6" data-path="elements.html">

								<a href="elements.html">


									Elements

								</a>


							</li>


						</ul>

					</li>

					<li class="chapter " data-level="1.5" data-path="../charts/">

						<a href="../charts/">


							Charts

						</a>


						<ul class="articles">


							<li class="chapter " data-level="1.5.1" data-path="../charts/line.html">

								<a href="../charts/line.html">


									Line

								</a>


							</li>

							<li class="chapter " data-level="1.5.2" data-path="../charts/bar.html">

								<a href="../charts/bar.html">


									Bar

								</a>


							</li>

							<li class="chapter " data-level="1.5.3" data-path="../charts/radar.html">

								<a href="../charts/radar.html">


									Radar

								</a>


							</li>

							<li class="chapter " data-level="1.5.4" data-path="../charts/doughnut.html">

								<a href="../charts/doughnut.html">


									Doughnut & Pie

								</a>


							</li>

							<li class="chapter " data-level="1.5.5" data-path="../charts/polar.html">

								<a href="../charts/polar.html">


									Polar Area

								</a>


							</li>

							<li class="chapter " data-level="1.5.6" data-path="../charts/bubble.html">

								<a href="../charts/bubble.html">


									Bubble

								</a>


							</li>

							<li class="chapter " data-level="1.5.7" data-path="../charts/scatter.html">

								<a href="../charts/scatter.html">


									Scatter

								</a>


							</li>

							<li class="chapter " data-level="1.5.8" data-path="../charts/area.html">

								<a href="../charts/area.html">


									Area

								</a>


							</li>

							<li class="chapter " data-level="1.5.9" data-path="../charts/mixed.html">

								<a href="../charts/mixed.html">


									Mixed

								</a>


							</li>


						</ul>

					</li>

					<li class="chapter " data-level="1.6" data-path="../axes/">

						<a href="../axes/">


							Axes

						</a>


						<ul class="articles">


							<li class="chapter " data-level="1.6.1" data-path="../axes/cartesian/">

								<a href="../axes/cartesian/">


									Cartesian

								</a>


								<ul class="articles">


									<li class="chapter " data-level="1.6.1.1"
									    data-path="../axes/cartesian/category.html">

										<a href="../axes/cartesian/category.html">


											Category

										</a>


									</li>

									<li class="chapter " data-level="1.6.1.2" data-path="../axes/cartesian/linear.html">

										<a href="../axes/cartesian/linear.html">


											Linear

										</a>


									</li>

									<li class="chapter " data-level="1.6.1.3"
									    data-path="../axes/cartesian/logarithmic.html">

										<a href="../axes/cartesian/logarithmic.html">


											Logarithmic

										</a>


									</li>

									<li class="chapter " data-level="1.6.1.4" data-path="../axes/cartesian/time.html">

										<a href="../axes/cartesian/time.html">


											Time

										</a>


									</li>


								</ul>

							</li>

							<li class="chapter " data-level="1.6.2" data-path="../axes/radial/">

								<a href="../axes/radial/">


									Radial

								</a>


								<ul class="articles">


									<li class="chapter " data-level="1.6.2.1" data-path="../axes/radial/linear.html">

										<a href="../axes/radial/linear.html">


											Linear

										</a>


									</li>


								</ul>

							</li>

							<li class="chapter " data-level="1.6.3" data-path="../axes/labelling.html">

								<a href="../axes/labelling.html">


									Labelling

								</a>


							</li>

							<li class="chapter " data-level="1.6.4" data-path="../axes/styling.html">

								<a href="../axes/styling.html">


									Styling

								</a>


							</li>


						</ul>

					</li>

					<li class="chapter " data-level="1.7" data-path="../developers/">

						<a href="../developers/">


							Developers

						</a>


						<ul class="articles">


							<li class="chapter " data-level="1.7.1" data-path="../developers/api.html">

								<a href="../developers/api.html">


									Chart.js API

								</a>


							</li>

							<li class="chapter " data-level="1.7.2" data-path="../developers/updates.html">

								<a href="../developers/updates.html">


									Updating Charts

								</a>


							</li>

							<li class="chapter " data-level="1.7.3" data-path="../developers/plugins.html">

								<a href="../developers/plugins.html">


									Plugins

								</a>


							</li>

							<li class="chapter " data-level="1.7.4" data-path="../developers/charts.html">

								<a href="../developers/charts.html">


									New Charts

								</a>


							</li>

							<li class="chapter " data-level="1.7.5" data-path="../developers/axes.html">

								<a href="../developers/axes.html">


									New Axes

								</a>


							</li>

							<li class="chapter " data-level="1.7.6" data-path="../developers/contributing.html">

								<a href="../developers/contributing.html">


									Contributing

								</a>


							</li>


						</ul>

					</li>

					<li class="chapter " data-level="1.8" data-path="../notes/">

						<a href="../notes/">


							Additional Notes

						</a>


						<ul class="articles">


							<li class="chapter " data-level="1.8.1" data-path="../notes/comparison.html">

								<a href="../notes/comparison.html">


									Comparison Table

								</a>


							</li>

							<li class="chapter " data-level="1.8.2" data-path="../notes/extensions.html">

								<a href="../notes/extensions.html">


									Popular Extensions

								</a>


							</li>

							<li class="chapter " data-level="1.8.3" data-path="../notes/license.html">

								<a href="../notes/license.html">


									License

								</a>


							</li>


						</ul>

					</li>


					<li class="divider"></li>

					<li>
						<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
							Published with GitBook
						</a>
					</li>
				</ul>


			</nav>


		</div>

		<div class="book-body">

			<div class="body-inner">


				<div class="book-header" role="navigation">


					<!-- Title -->
					<h1>
						<i class="fa fa-circle-o-notch fa-spin"></i>
						<a href="..">Animations</a>
					</h1>
				</div>


				<div class="page-wrapper" tabindex="-1" role="main">
					<div class="page-inner">

						<div class="search-plus" id="book-search-results">
							<div class="search-noresults">

								<section class="normal markdown-section">

									<h1 id="animations">Animations</h1>
									<p>Chart.js animates charts out of the box. A number of options are provided to
										configure how the animation looks and how long it takes</p>
									<h2 id="animation-configuration">Animation Configuration</h2>
									<p>The following animation options are available. The global options for are defined
										in <code>Chart.defaults.global.animation</code>.</p>
									<table>
										<thead>
											<tr>
												<th>Name</th>
												<th>Type</th>
												<th>Default</th>
												<th>Description</th>
											</tr>
										</thead>
										<tbody>
											<tr>
												<td><code>duration</code></td>
												<td><code>Number</code></td>
												<td><code>1000</code></td>
												<td>The number of milliseconds an animation takes.</td>
											</tr>
											<tr>
												<td><code>easing</code></td>
												<td><code>String</code></td>
												<td><code>&apos;easeOutQuart&apos;</code></td>
												<td>Easing function to use. <a href="#easing">more...</a></td>
											</tr>
											<tr>
												<td><code>onProgress</code></td>
												<td><code>Function</code></td>
												<td><code>null</code></td>
												<td>Callback called on each step of an animation. <a
													href="#animation-callbacks">more...</a></td>
											</tr>
											<tr>
												<td><code>onComplete</code></td>
												<td><code>Function</code></td>
												<td><code>null</code></td>
												<td>Callback called at the end of an animation. <a
													href="#animation-callbacks">more...</a></td>
											</tr>
										</tbody>
									</table>
									<h2 id="easing">Easing</h2>
									<p> Available options are:</p>
									<ul>
										<li><code>&apos;linear&apos;</code></li>
										<li><code>&apos;easeInQuad&apos;</code></li>
										<li><code>&apos;easeOutQuad&apos;</code></li>
										<li><code>&apos;easeInOutQuad&apos;</code></li>
										<li><code>&apos;easeInCubic&apos;</code></li>
										<li><code>&apos;easeOutCubic&apos;</code></li>
										<li><code>&apos;easeInOutCubic&apos;</code></li>
										<li><code>&apos;easeInQuart&apos;</code></li>
										<li><code>&apos;easeOutQuart&apos;</code></li>
										<li><code>&apos;easeInOutQuart&apos;</code></li>
										<li><code>&apos;easeInQuint&apos;</code></li>
										<li><code>&apos;easeOutQuint&apos;</code></li>
										<li><code>&apos;easeInOutQuint&apos;</code></li>
										<li><code>&apos;easeInSine&apos;</code></li>
										<li><code>&apos;easeOutSine&apos;</code></li>
										<li><code>&apos;easeInOutSine&apos;</code></li>
										<li><code>&apos;easeInExpo&apos;</code></li>
										<li><code>&apos;easeOutExpo&apos;</code></li>
										<li><code>&apos;easeInOutExpo&apos;</code></li>
										<li><code>&apos;easeInCirc&apos;</code></li>
										<li><code>&apos;easeOutCirc&apos;</code></li>
										<li><code>&apos;easeInOutCirc&apos;</code></li>
										<li><code>&apos;easeInElastic&apos;</code></li>
										<li><code>&apos;easeOutElastic&apos;</code></li>
										<li><code>&apos;easeInOutElastic&apos;</code></li>
										<li><code>&apos;easeInBack&apos;</code></li>
										<li><code>&apos;easeOutBack&apos;</code></li>
										<li><code>&apos;easeInOutBack&apos;</code></li>
										<li><code>&apos;easeInBounce&apos;</code></li>
										<li><code>&apos;easeOutBounce&apos;</code></li>
										<li><code>&apos;easeInOutBounce&apos;</code></li>
									</ul>
									<p>See <a href="http://robertpenner.com/easing/" target="_blank">Robert Penner&apos;s
										easing equations</a>.</p>
									<h2 id="animation-callbacks">Animation Callbacks</h2>
									<p>The <code>onProgress</code> and <code>onComplete</code> callbacks are useful for
										synchronizing an external draw to the chart animation. The callback is passed a
										<code>Chart.Animation</code> instance:</p>
									<pre><code class="lang-javascript">{
    <span class="hljs-comment">// Chart object</span>
    chart: Chart,

    <span class="hljs-comment">// Current Animation frame number</span>
    currentStep: <span class="hljs-built_in">Number</span>,

    <span class="hljs-comment">// Number of animation frames</span>
    numSteps: <span class="hljs-built_in">Number</span>,

    <span class="hljs-comment">// Animation easing to use</span>
    easing: <span class="hljs-built_in">String</span>,

    <span class="hljs-comment">// Function that renders the chart</span>
    render: <span class="hljs-built_in">Function</span>,

    <span class="hljs-comment">// User callback</span>
    onAnimationProgress: <span class="hljs-built_in">Function</span>,

    <span class="hljs-comment">// User callback</span>
    onAnimationComplete: <span class="hljs-built_in">Function</span>
}
</code></pre>
									<p>The following example fills a progress bar during the chart animation.</p>
									<pre><code class="lang-javascript"><span
										class="hljs-keyword">var</span> chart = <span class="hljs-keyword">new</span> Chart(ctx, {
    type: <span class="hljs-string">&apos;line&apos;</span>,
    data: data,
    options: {
        animation: {
            onProgress: <span class="hljs-function"><span class="hljs-keyword">function</span>(<span
											class="hljs-params">animation</span>) </span>{
                progress.value = animation.animationObject.currentStep / animation.animationObject.numSteps;
            }
        }
    }
});
</code></pre>
									<p>Another example usage of these callbacks can be found on <a
										href="https://github.com/chartjs/Chart.js/blob/master/samples/advanced/progress-bar.html"
										target="_blank">Github</a>: this sample displays a progress bar showing how far
										along the animation is.</p>


								</section>

							</div>
							<div class="search-results">
								<div class="has-results">

									<h1 class="search-results-title"><span class='search-results-count'></span> results
										matching "<span class='search-query'></span>"</h1>
									<ul class="search-results-list"></ul>

								</div>
								<div class="no-results">

									<h1 class="search-results-title">No results matching "<span
										class='search-query'></span>"</h1>

								</div>
							</div>
						</div>

					</div>
				</div>

			</div>


			<a href="./" class="navigation navigation-prev " aria-label="Previous page: Configuration">
				<i class="fa fa-angle-left"></i>
			</a>


			<a href="layout.html" class="navigation navigation-next " aria-label="Next page: Layout">
				<i class="fa fa-angle-right"></i>
			</a>


		</div>

		<script>
			var gitbook = gitbook || [];
			gitbook.push(function () {
				gitbook.page.hasChanged({
					"page": {
						"title": "Animations",
						"level": "1.4.1",
						"depth": 2,
						"next": {
							"title": "Layout",
							"level": "1.4.2",
							"depth": 2,
							"path": "configuration/layout.md",
							"ref": "configuration/layout.md",
							"articles": []
						},
						"previous": {
							"title": "Configuration",
							"level": "1.4",
							"depth": 1,
							"path": "configuration/README.md",
							"ref": "configuration/README.md",
							"articles": [{
								"title": "Animations",
								"level": "1.4.1",
								"depth": 2,
								"path": "configuration/animations.md",
								"ref": "configuration/animations.md",
								"articles": []
							}, {
								"title": "Layout",
								"level": "1.4.2",
								"depth": 2,
								"path": "configuration/layout.md",
								"ref": "configuration/layout.md",
								"articles": []
							}, {
								"title": "Legend",
								"level": "1.4.3",
								"depth": 2,
								"path": "configuration/legend.md",
								"ref": "configuration/legend.md",
								"articles": []
							}, {
								"title": "Title",
								"level": "1.4.4",
								"depth": 2,
								"path": "configuration/title.md",
								"ref": "configuration/title.md",
								"articles": []
							}, {
								"title": "Tooltip",
								"level": "1.4.5",
								"depth": 2,
								"path": "configuration/tooltip.md",
								"ref": "configuration/tooltip.md",
								"articles": []
							}, {
								"title": "Elements",
								"level": "1.4.6",
								"depth": 2,
								"path": "configuration/elements.md",
								"ref": "configuration/elements.md",
								"articles": []
							}]
						},
						"dir": "ltr"
					},
					"config": {
						"plugins": ["-lunr", "-search", "search-plus", "anchorjs", "chartjs", "ga"],
						"root": "./docs",
						"styles": {
							"website": "style.css",
							"pdf": "styles/pdf.css",
							"epub": "styles/epub.css",
							"mobi": "styles/mobi.css",
							"ebook": "styles/ebook.css",
							"print": "styles/print.css"
						},
						"pluginsConfig": {
							"anchorjs": {"icon": "#", "placement": "left", "visible": "always"},
							"ga": {"configuration": "auto", "token": "UA-28909194-3"},
							"theme-default": {
								"styles": {
									"website": "style.css",
									"pdf": "styles/pdf.css",
									"epub": "styles/epub.css",
									"mobi": "styles/mobi.css",
									"ebook": "styles/ebook.css",
									"print": "styles/print.css"
								}, "showLevel": false
							},
							"search-plus": {},
							"chartjs": {"defaults": null},
							"highlight": {},
							"sharing": {
								"facebook": true,
								"twitter": true,
								"google": false,
								"weibo": false,
								"instapaper": false,
								"vk": false,
								"all": ["facebook", "google", "twitter", "weibo", "instapaper"]
							},
							"fontsettings": {"theme": "white", "family": "sans", "size": 2}
						},
						"theme": "default",
						"author": "chartjs",
						"pdf": {
							"pageNumbers": true,
							"fontSize": 12,
							"fontFamily": "Arial",
							"paperSize": "a4",
							"chapterMark": "pagebreak",
							"pageBreaksBefore": "/",
							"margin": {"right": 62, "left": 62, "top": 56, "bottom": 56}
						},
						"structure": {
							"langs": "LANGS.md",
							"readme": "README.md",
							"glossary": "GLOSSARY.md",
							"summary": "SUMMARY.md"
						},
						"variables": {},
						"gitbook": "3.2.2"
					},
					"file": {
						"path": "configuration/animations.md",
						"mtime": "2017-10-28T15:03:49.266Z",
						"type": "markdown"
					},
					"gitbook": {"version": "3.2.2", "time": "2017-10-28T15:09:53.587Z"},
					"basePath": "..",
					"book": {"language": ""}
				});
			});
		</script>
	</div>


	<script src="../gitbook/gitbook.js"></script>
	<script src="../gitbook/theme.js"></script>


	<script src="../gitbook/gitbook-plugin-search-plus/jquery.mark.min.js"></script>


	<script src="../gitbook/gitbook-plugin-search-plus/search.js"></script>


	<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/3.1.1/anchor.min.js"></script>


	<script src="../gitbook/gitbook-plugin-anchorjs/anchor-style.js"></script>


	<script src="../gitbook/gitbook-plugin-ga/plugin.js"></script>


	<script src="../gitbook/gitbook-plugin-sharing/buttons.js"></script>


	<script src="../gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>


</body>
</html>

